#ifndef _PARAMS_CONFIG_H_
#define _PARAMS_CONFIG_H_

#include <stdint.h>
#include "mcu_uid.h"

#define NODE_MAX_CNT            (20)    /* 允许的采集器节点的最大个数 */
#define NODE_PARAMS_LEN         (32)    /* 节点参数的长度(占存储空间的长度) */
#define NODE_PARAMS_START_ADDR  (32)    /* 节点参数存储的起始地址 */
#define GW_PAARAMS_START_ADDR   (0)     /* 网关参数存储的起始地址 */

#define DEV_TYPE_CJQ            (0x03)  /* 采集器的设备类型 */

typedef struct {
    uint8_t serial_num[DEV_SERIAL_NUM_LEN];   /* 采集器节点的序列号，初始全部为0xFF */
    uint8_t node_addr;      /* 采集器节点的短地址，未分配为0xFF */
    uint8_t join_net_flag;  /* 入网表示，为1表示已经入网，为0表示需要组网 */
    uint8_t quit_net_flag;  /* 退网标志，为1表示需要退网，为0表示无需退网 */
    uint8_t dev_type;       /* 设备类型 */
    uint8_t traverse_flag;  /* 遍历标识，1表示收到服务器下发的设备信息后找到了该节点 */
}node_info_t;               /* 采集器节点信息 */
extern node_info_t node_info_s[NODE_MAX_CNT];

typedef struct {
    uint8_t net_addr;       /* 网络地址 */
    uint8_t pub_cycle_min;  /* 上报周期 */
}gw_info_t;
extern gw_info_t gw_info_s;



void parse_node_info(const char *data, uint32_t size);
void read_node_info(void);
void save_node_info(void);
void save_gw_info(void);
void read_gw_info(void);
void node_info_test(void);


#endif  /* params_config.h */